package shoppingmall.manage.mapper;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import shoppingmall.manage.pojo.Commodity;

import java.util.List;

/**
 * 商品列表相关-mapper层
 */
@Mapper
public interface CommodityMapper {

    /**
     * 分页查询商品数据
     */
    @Select("select * from tb_commodity limit #{start},#{pageSize}")
    public List<Commodity> getCommodityList(int start, int pageSize);

    /**
     * *****查询商品数据(所有数据查询-用作匹配订单的商品名称)
     * 查询所有的商品信息
     */
    @Select("select * from tb_commodity")
    public List<Commodity> getAllCommodityList();

    /**
     * 查询商品总记录条数
     */
    @Select("select count(*) from tb_commodity")
    public int getCommodityCount ();

    /**
     * 添加一条商品数据
     */
    public void saveCommodity (Commodity commodity);

    /**
     * 更新一条商品信息
     */
    public void updateCommodity (Commodity commodity);

    /**
     * 删除一条商品信息
     */
    @Delete("delete from tb_commodity where commodity_id = #{commodityId}")
    public void deleteCommodity (int commodityId);

    /**
     * 根据商品分类对商品进行筛选
     */
    public List<Commodity> getCommodityListByCategory (int commodityCategoryId);

    /**
     * 根据商品id commodityIds 批量删除商品数据
     */
    public int deleteCommodityListBatch (List<Integer> commodityIds);

    /**
     * 根据商品名称对商品进行模糊匹配搜索 commodityName
     */
    public List<Commodity> getCommodityListByCommodityName (String commodityName);

    /**
     * 根据商品销量、商品销售额 对商品进行 排序输出 (自定义排序字段 和 排序方式 asc、desc,字段名有：commodity_sales,commodity_sale_money)
     */
    public List<Commodity> getCommodityListSort (String fieldName, String sortRule);

}
